//
//  HMWelcomeViewController.swift
//  新浪微博
//
//  Created by 饶鹏伟 on 16/4/10.
//  Copyright © 2016年 饶鹏伟. All rights reserved.
//

import UIKit
import SnapKit
import SDWebImage
class HMWelcomeViewController: UIViewController {

    //加载视图的时候调用
    override func loadView() {
        
        view=UIImageView(image: UIImage(named: "ad_background") )
    }
    
    //视图加载完成调用
    override func viewDidLoad() {
        super.viewDidLoad()
        //在viewDidLoad阶段获取的根视图的大小可能不是准确
        setupUI()
        //print(view.frame)
        
    }
    
    override func viewWillLayoutSubviews() {
        //会自动给根视图大小重新设置和设备的屏幕尺寸大小一致的size
        super.viewWillLayoutSubviews()
        //print(view.frame)
    }
    
    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        //print(view.frame)
    }
    
    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        //print(view.frame)
        //在根视图确定大小的时候 执行动画效果
        startAnimation()
    }
    

    //设置view显示界面
    private func setupUI(){
        
        view.addSubview(iconView)
        view.addSubview(nameLabel)
        
        //将用户头像处理成圆角
        iconView.cornerRadius=45
        
        iconView.snp_makeConstraints { (make) -> Void in
            make.centerX.equalTo(self.view.snp_centerX)
            make.bottom.equalTo(self.view.snp_bottom).offset(-180)
            //在SnapKit 0.18版本上 直接设置 size 不会有效果  那就可以使用 width + height
            //设置图片的大小
//            make.width.equalTo(90)
//            make.height.equalTo(90)
            
            //等效上面设置
            make.size.equalTo(CGSize(width: 90, height: 90))
        }
        
        nameLabel.snp_makeConstraints { (make) -> Void in
            make.centerX.equalTo(iconView.snp_centerX)
            make.top.equalTo(iconView.snp_bottom).offset(16)
        }
        
        
        //加载头像
        //网络提供的数据不能够直接使用 需要转换数据(洗数据)
        iconView.sd_setImageWithURL(HMUserAccountViewModel.sharedAccountViewModel.headImageURL)
    }
    
    
    //执行头像的动画的显示效果
    private func startAnimation(){
        
        let offset = -ScreenHeight + 180
        //一开始让lable透明度为0 让图片显示完成 过一会在动画显示lable
        nameLabel.alpha = 0
        //执行动画  弹簧动画
        /*
        1.usingSpringWithDamping : 阻尼系数 弹簧系数 0 ~ 1,阻尼系数越小弹簧效果越大
        2. initialSpringVelocity: 加速度  开始的时候的加速度, 值越大 开始的速速就越快
        */
        //动画效果要修改的代码 frame布局 修改frame
        self.iconView.snp_updateConstraints(closure: { (make) -> Void in
            //更新 头像的底部约束
            make.bottom.equalTo(self.view.snp_bottom).offset(offset)
        })
        UIView.animateWithDuration(2, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 5, options: [], animations: { () -> Void in
            //强制刷新页面 提前刷新页面
            self.view.layoutIfNeeded()
            
            }) { (_) -> Void in
                
                UIView.animateWithDuration(0.6, animations: { () -> Void in
                    
                    //显示nameLabel
                    self.nameLabel.alpha = 1

                    }, completion: { (_) -> Void in
                        
                       //print("OK")
                        
                      //跳转页面  发送通知
                       NSNotificationCenter.defaultCenter().postNotificationName(HMSwitchRootViewController, object: "Main")
                        
//                        UINavigationItem
//                        UINavigationBar
//                        UITabBar
//                        UITabBarItem
                        
                })
        }
    }
    
    //懒加载控件
    private lazy var iconView: UIImageView = UIImageView(image: UIImage(named: "avatar_default_big"))
    private lazy var nameLabel: UILabel = {
        let l = UILabel()
        l.textColor = UIColor.darkGrayColor()
        l.font = UIFont.systemFontOfSize(15)
        //设置文字
        l.text = HMUserAccountViewModel.sharedAccountViewModel.userAccount?.name
        l.sizeToFit()
        return l
    }()
    
}
